---
title: "Versioning"
section: "Developers"
description: "How Hyprnote handles versioning for desktop releases"
---

# Overview

- Before `v1.0.0`, we use `tauri.conf.json` to manage the base version, and `git tags` & `workflow inputs` to manage the release channels.
- From `v1.0.0`, all version information is stored as `git tags`, and injected to `tauri.conf.json` in build time. This also means `version` field in `tauri.conf.json` is not managed at all. 
- Also all version are compliant with [semver](https://semver.org/), \
and we use [doxxer](https://github.com/karlis-vagalis/doxxer) to automate the versioning process. \

# Format

- `1.0.0-nightly.0` (manually tag) -> `1.0.0-nightly.1` -> `1.0.0-nightly.2` -> `1.0.0` (manually tag)
- `1.0.1-nightly.0` (manually tag) -> `1.0.1-nightly.1` -> `1.0.1-nightly.2` -> `1.0.1` (manually tag)

```bash
doxxer --config doxxer.desktop.toml current           # current

doxxer --config doxxer.desktop.toml next dev          # staging
doxxer --config doxxer.desktop.toml next prerelease   # nightly (increment prerelease)
doxxer --config doxxer.desktop.toml next patch        # stable patch
doxxer --config doxxer.desktop.toml next minor        # stable minor
doxxer --config doxxer.desktop.toml next major        # stable major
```

# Release

Available channels:
- nightly
- stable

Available platforms:
- appimage-x86_64
- deb-x86_64
- dmg-x86_64
- dmg-aarch64

Example:

http://desktop2.hyprnote.com/download/latest/appimage-x86_64?channel=nightly

For accessing old versions:

https://github.com/fastrepl/hyprnote/releases